/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ac.za.designPatterns.factory;

import ac.za.designPatterns.creational.abstractFactory.factory.AsbstractFactory;
import ac.za.designPatterns.creational.abstractFactory.factory.StudentFactory;
import ac.za.designPatterns.creational.abstractFactory.factory.impl.PostGradFactory;
import ac.za.designPatterns.creational.abstractFactory.factory.impl.UnderGradFatory;
import ac.za.designPatterns.creational.prototype.Dog;
import ac.za.designPatterns.creational.prototype.Person;
import ac.za.designPatterns.creational.prototype.Prototype;
import ac.za.designPatterns.structural.adapter.TemperatureClassReporter;
import ac.za.designPatterns.structural.adapter.TemperatureInfo;
import ac.za.designPatterns.structural.adapter.TemperatureObjectReporter;
import ac.za.designPatterns.structural.composite.Leaf;
import ac.za.designPatterns.structural.facade.Facade;
import java.awt.Composite;
import java.awt.CompositeContext;
import java.awt.RenderingHints;
import java.awt.image.ColorModel;


/**
 *
 * @author user
 */
public class AppFactory{

    public static Prototype Person(String fred){
       return new  Person(fred);
    }

    public static Prototype Dog(String woof) {
        return new Dog(woof);
    }

    public static StudentFactory Under_gradStudentFactory() {
        return new UnderGradFatory();
    }
    public static StudentFactory Post_gradStudentFactory() {
        return new PostGradFactory();
    }

    public static AsbstractFactory AbstractFactory() {
        return new AsbstractFactory();
    }

    public static TemperatureInfo getTepreRep() {
        return new  TemperatureClassReporter();
    }

    public static TemperatureInfo getTempObjectRepoty() {
        return new TemperatureObjectReporter();
    }

   public static Composite getComposite() {
       
        return  new Composite() {

            @Override
            public CompositeContext createContext(ColorModel cm, ColorModel cm1, RenderingHints rh) {
                throw new UnsupportedOperationException("Not supported yet.");
            }
        };


   }

   public static Facade getFacade() {
        return new Facade();
    }
    }
   
    
